local ttl = math.floor(tonumber(ARGV[2]))

local result = redis.call('set', KEYS[1], ARGV[1], 'NX', 'PX', ttl)
if result then
    return 1
else
    local currentValue = redis.call('get', KEYS[1])
    if tostring(currentValue) == tostring(ARGV[1]) then
        redis.call('expire', KEYS[1], ttl)
        return 1
    else
        return 0
    end
end